<!DOCTYPE html>
<html lang="en">

<head>
  <meta charset="UTF-8">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <title>Document</title>
</head>

<body>
  <script>
    // 定义一个手机，当初父类
    function Phone(brand, price) {
      this.brand = brand;
      this.price = price;
    }
    // 给手机一个 call 函数
    Phone.prototype.call = function () {
      console.log(' 打电话')
    }

    // 定义一个智能手机，当成子类
    function SmartPhone(brand, price, color, size) {
      // 继承 Phone 的构造函数
      Phone.call(this, brand, price);
      this.color = color;
      this.size = size;
    }

    // 设置子级构造函数的原型
    SmartPhone.prototype = new Phone;   // 继承，这样就可以继承 Phone 的属性和方法，指定了子类的属性类型的父类
    SmartPhone.prototype.constructor = SmartPhone;

    // 声明子类的方法
    SmartPhone.prototype.photo = function () {
      console.log("可以拍照");
    }
    SmartPhone.prototype.playGame = function () {
      console.log("可以玩游戏");
    }

    // 实例化子类测试
    const chuizi = new SmartPhone('锤子', 2499, '黑色', '5.5inch');

    console.log(chuizi);



  </script>
</body>

</html>